package com.ruoyi.system.service;

import com.ruoyi.system.domain.WaterMeter;
import com.ruoyi.system.domain.WaterMeterDatahistory;
import com.ruoyi.system.domain.tax.BaseResponse;
import com.ruoyi.system.domain.tax.BatterySignalData;
import com.ruoyi.system.domain.tax.DeviceQuery;
import com.ruoyi.system.domain.tax.FluxPressureData;

import java.util.List;

/**
 * 抄表数据Service接口
 *
 * @author ruoyi
 * @date 2025-09-16
 */
public interface IWaterMeterDatahistoryService
{
    /**
     * 查询抄表数据
     *
     * @param id 抄表数据主键
     * @return 抄表数据
     */
    public WaterMeterDatahistory selectWaterMeterDatahistoryById(Long id);

    /**
     * 查询抄表数据列表
     *
     * @param waterMeterDatahistory 抄表数据
     * @return 抄表数据集合
     */
    public List<WaterMeterDatahistory> selectWaterMeterDatahistoryList(WaterMeterDatahistory waterMeterDatahistory);

    public List<WaterMeterDatahistory> getUserDataHislist(String userid,Integer beginSize, Integer endSize);


    /**
     * 新增抄表数据
     *
     * @param waterMeterDatahistory 抄表数据
     * @return 结果
     */
    public int insertWaterMeterDatahistory(WaterMeterDatahistory waterMeterDatahistory);

    /**
     * 修改抄表数据
     *
     * @param waterMeterDatahistory 抄表数据
     * @return 结果
     */
    public int updateWaterMeterDatahistory(WaterMeterDatahistory waterMeterDatahistory);

    /**
     * 批量删除抄表数据
     *
     * @param ids 需要删除的抄表数据主键集合
     * @return 结果
     */
    public int deleteWaterMeterDatahistoryByIds(Long[] ids);

    /**
     * 删除抄表数据信息
     *
     * @param id 抄表数据主键
     * @return 结果
     */
    public int deleteWaterMeterDatahistoryById(Long id);

    /**
     * 同步水表数据
     * @return
     */
    public int syncWaterMeterData(WaterMeter waterMeter,String startTime);

    public BaseResponse<FluxPressureData> getFluxPressureData(List<DeviceQuery> queries);
    public BaseResponse<BatterySignalData> getBatterySignalData(List<DeviceQuery> queries);
    public void handleErrorCode(String code, String message);
}
